#include<bits/stdc++.h>
#define mid (t[p].l+t[p].r)/2
using namespace std;
struct f{int ch[2],dep,sum;}tr[1100005];
int a[1100005],b[1100005];
struct f1{int l,r,sum,id,sum1,id1;}t[1100005*4];
void wei(f1 &x,f1 y,f1 z){
	x.sum=min(y.sum,z.sum);
	x.sum1=min(y.sum1,z.sum1);
	if(x.sum==y.sum) x.id=y.id;
	else x.id=z.id;
	if(x.sum1==y.sum1) x.id1=y.id1;
	else x.id1=z.id1;
}
void jianshu(int p,int l,int r){
	t[p].l=l,t[p].r=r;
	if(l==r){
		t[p].sum=a[l],t[p].id=t[p].id1=l;
		t[p].sum1=b[l];return;
	}
	jianshu(p*2,l,mid),jianshu(p*2+1,mid+1,r);
	wei(t[p],t[p*2],t[p*2+1]);
}
void xiugai(int p,int l,int k,int op){
	if(t[p].l==t[p].r){
		if(op==0){t[p].sum=k;}
		else t[p].sum1=k;
		return;
	}
	if(l<=mid) xiugai(p*2,l,k,op);
	else xiugai(p*2+1,l,k,op);
	wei(t[p],t[p*2],t[p*2+1]);
}
f1 chaxun(int p,int l,int r){
	if(t[p].l>=l&&t[p].r<=r) return t[p];
	if(r<=mid) return chaxun(p*2,l,r);
	if(l>mid) return chaxun(p*2+1,l,r);
	f1 ans;wei(ans,chaxun(p*2,l,r),chaxun(p*2+1,l,r));
	return ans;
}
int cnt,cnt1;
int siz[1100005],rs[1100005],ls[1100005];
void cha(string s){int p=0;
	for(int i=0;i<s.size();i++){
		int sum=s[i]-'0';
		if(!tr[p].ch[sum]){
			cnt++,tr[p].ch[sum]=cnt,
			tr[cnt].dep=tr[p].dep+1;
		}
		p=tr[p].ch[sum];
	}tr[p].sum++;
}
long long ans;
void dfs(int p){
	int now=cnt1;
	cnt1++;ls[p]=cnt1;
	cnt1+=tr[p].sum;rs[p]=cnt1;
	if(tr[p].ch[0])dfs(tr[p].ch[0]);
	if(tr[p].ch[1])dfs(tr[p].ch[1]);
	siz[p]=cnt1-now;
	for(int i=ls[p];i<=rs[p];i++)b[i]=1e9,a[i]=1e9;
	if(tr[p].ch[0]||tr[p].ch[1]){if(!tr[p].ch[0]||!tr[p].ch[1]) a[ls[p]]=tr[p].dep;}
	if(!tr[p].ch[0]&&!tr[p].ch[1]){
		if(tr[p].sum==1) b[ls[p]+1]=tr[p].dep;
		else{rs[p]-=2;tr[p].sum-=2;ans+=2;
			b[cnt1-1]=tr[p].dep+1,b[cnt1]=tr[p].dep+1;
		}
	}
}
void dfs1(int p){
	if(tr[p].ch[0])dfs1(tr[p].ch[0]);
	if(tr[p].ch[1])dfs1(tr[p].ch[1]);
	if(tr[p].sum){
		int l=ls[p],r=ls[p]+siz[p]-1;
		if(tr[p].sum==1&&!tr[p].ch[0]&&!tr[p].ch[1]) return;
		for(int i=ls[p]+1;i<=rs[p];i++){
			f1 op=chaxun(1,l,r);
			if(op.sum-tr[p].dep+1<=op.sum1-tr[p].dep+2){
				xiugai(1,op.id,1e9,0);
				ans+=op.sum-tr[p].dep+1;
				
//				if(op.sum>20){cout<<"whx";exit(0);}
				
				xiugai(1,i,op.sum+1,1);
			}
			else{
				xiugai(1,op.id1,op.sum1+1,1);
				
//				if(op.sum1>1e9){cout<<"whx";exit(0);}
				
				ans+=op.sum1-tr[p].dep+2;
				xiugai(1,i,op.sum1+1,1);
			}
		}
	}
}
signed main(){
	freopen("id.in","r",stdin);
	freopen("id.out","w",stdout);
	ios::sync_with_stdio(0);
	cin.tie(0),cout.tie(0);	
	int n;cin>>n;	
	for(int i=1;i<=n;i++){
		string s;cin>>s;
		cha(s);
	}
	dfs(0);
	jianshu(1,1,cnt1);
	dfs1(0);
	cout<<ans;
	return 0;
}
